package com.lzy.demo;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @ClassName Test
 * @Author liu zhiyong
 * @Date 2020/8/7 16:41
 * @Version 1.0
 */
public class Test {

    public static void main(String[] args) throws IOException, TemplateException {

        //1.创建配置对象
        Configuration configuration = new Configuration(Configuration.getVersion());

        //2.设置模板文件所在的路径
        configuration.setDirectoryForTemplateLoading(new File("D:\\idea_workspace\\freemarker-demo\\src\\main\\resources"));

        //3.设置模板文件使用的字符集。一般就是 utf-8
        configuration.setDefaultEncoding("utf-8");

        //4.加载一个模板，创建一个模板对象
        Template template = configuration.getTemplate("test.ftl");

        //5.创建一个模板使用的数据集，可以是 pojo 也可以是 map。一般是 Map
        HashMap map = new HashMap();
        map.put("name", "木丁西");
        map.put("message", "这是freemarker入门小demo");
        map.put("success", true);

        Map goods1=new HashMap();
        goods1.put("name", "苹果");
        goods1.put("price", 5.8);
        Map goods2=new HashMap();
        goods2.put("name", "香蕉");
        goods2.put("price", 2.5);
        Map goods3= new HashMap();
        goods3.put("name", "橘子");
        goods3.put("price", 3.2);

        List goodsList=new ArrayList();
        goodsList.add(goods1);
        goodsList.add(goods2);
        goodsList.add(goods3);

        map.put("goodsList", goodsList);


        //6.创建一个 Writer 对象，一般创建一 FileWriter 对象，指定生成的文件名
        FileWriter fileWriter = new FileWriter(new File("d:\\freemarkerTest.html"));

        //7.调用模板对象的 process 方法输出文件
        template.process(map, fileWriter);

        //8.关闭流
        fileWriter.close();

    }
}
